package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Permission;
import com.itheima.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * @author 黑马程序员
 * @Company http://www.ithiema.com
 * @Version 1.0
 */
public interface RoleDao {

    Set<Role> findRolesByUserId(Integer userId);

    /**
     * 角色添加
     * @param role
     */
    void add(Role role);
    /**
     * 维护角色权限 关系
     *
     */
    void set(Integer roleId, Integer permissionsId);


    /**
     * 查找所有权限
     *
     */
    List<Permission> findAllRolePermission();



    Page<Role> findByConditions(@Param("queryString") String queryString);


    /**
     * 回显角色的基本数据
     */
    Role findRoleById(Integer id);

    /**
     * 回显角色所关联的权限
     */
    List<Integer> findPermissionById(Integer id);

    /**
     * 编辑数据
     * @param role
     */
    void edit(Role role);

    /**
     * 删除关系
     * @param id
     */
    void delRelation(Integer id);

    /**
     *
     * @param id
     */
    void delById(Integer id);

    Integer selectName(String name);

    List<Role> findAll();
}
